#include "syscall.h"

/*
Bon j'ai fais un prog de test plus complet : les appels a synch marchent
mais pas de facon atomique du coup on peut se retrouver avec des
lettres intercallees. Au moins ca permet de tester et comme atomicputstring
c est question bonus on le fera le moment venu?
*/
void print(int n){
	int m;
	PutString("\nThread >void print(int n)<\n");
	for(m = 1; m < 5;m++)
		PutInt(n);
	PutChar('\n');
//	for(m = 1; m < 100000 ; m++)
//	{};
	PutString("Attention je sors Thread cree (print)!\n\n");
	UserThreadExit();
}

void printk(int k){
	int m;
	PutString("\nThread >void printk(int k)<\n");
	for(m = 1; m < 5;m++)
		PutInt(k);
	PutChar('\n');
	PutString("Attention je sors Thread cree (printk)!\n\n");
	UserThreadExit();
}

int main() {
	int ret1,ret2;
	int p;
	int n;
	char s[12];
	n=0;
	PutString("ca commence Thread Principal:\n");

	PutString("Entrez une chaine : ");
	GetString(s, 12);
	PutString(s);
	//1er thread
	ret1 = UserThreadCreate((void*)print, (void*)24);

	if(ret1 == -1) {
		PutString("Erreur Creation Thread !");
		return 1;
	}

// 	2eme thread
	ret2 = UserThreadCreate((void*)printk, (void*)5);

	if(ret2 == -1) {
		PutString("Erreur Creation Thread !");
		return 1;
	}


//	for(p = 1; p < 1000000 ; p++)
//	{};
	UserThreadJoin(ret1);
	UserThreadJoin(ret2);

	PutString("ca finit Thread Principal\n");
	return 0;
}

